#include <pthread.h>
#include <iostream>
#include <string>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#define B 1
#define KB 1024
#define MB 1048576

class Environment{

 private : 
  int _blockSize; // B, KB or MG
  int _access;  // 0-> both ; 1 -> sequential ; 2 ->random
  pthread_t * _thread;
  int _nbThread; // 1 or 2
  float _result; 
  
 public : 
  Environment(); 
  Environment(Environment * env);
  ~Environment(); 

  // Get method 
  int getBlockSize();
  int getAccess(); 
  int getNbThread();
  pthread_t * getThread(); 
  float getResult(){ return _result; }

  // set method 
  void setBlockSize(int blockSize);
  void setBlockSize(std::string value);

  void setAccess(int access);
  void setAccess(std::string value);
  void setThread(pthread_t* thread); 
  void setThread(std::string values);

  // other method
  void toPrint(); 
  void addResult(float result){ _result += result; }  
  void resetResult(){ _result = 0; }

};
